package edu.nuc.event.dao;


import edu.nuc.event.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper {

    /**
     * 查询所有用户
     *
     * @return
     */
    public List<User> getAllUsers();

    /**
     * 查询符合要求人员信息
     *
     * @param cpid     赛事ID
     * @param usertype 用户类型
     * @return 用户集合
     */
    public List<User> demandusers(@Param("cpid") Integer cpid, @Param("usertype") Integer usertype);

    /**
     * 查询符合要求人员数量
     *
     * @param cpid     赛事ID
     * @param usertype 用户类型
     * @return
     */
    public int demanduseraccount(@Param("cpid") Integer cpid, @Param("usertype") Integer usertype);

    /**
     * 查找赛事为空值的不同类型用户
     *
     * @return
     */
    public List<User> comemptyuser(Integer usertype);

    /**
     * 查找赛事为空值的不同类型用户数量
     *
     * @param usertype 用户类型
     * @return
     */
    public int comemptyuseraccount(Integer usertype);

    /**
     * 更新用户参加的赛事
     *
     * @param comid
     * @param userid
     * @return
     */
    public int updateusercp(int userid, int comid);

    /**
     * 把用户的赛事情况设置为空
     *
     * @param userid
     * @return
     */
    public int updateusercpisnull(int userid);


    /**
     * 修改用户
     *
     * @param user
     * @return
     */
    public int updateuser(User user);

    /**
     * 查找出相关用户类型的用户名单
     *
     * @param usertype
     * @return
     */
    public List<User> findusers(int usertype);


    /**
     * 增加用户
     *
     * @param user
     * @return
     */
    public int adduser(User user);


    /**
     * 通过用户账户名来查询用户
     *
     * @param useraccount
     * @return
     */
    public int selectByuseraccount(int useraccount);


}
